package service;


import org.apache.log4j.Logger;
import org.aspectj.lang.ProceedingJoinPoint;

import java.util.Arrays;

public class UserServiceLogger {
    private static final Logger log =Logger.getLogger(UserServiceLogger.class);
    //表示前制增强方法的JavaBean
    public Object aroundLogger(ProceedingJoinPoint jp) throws  Throwable{
            log .info("调用 "+jp.getTarget()+"的" +jp.getSignature().getName()+"方法。方法入参："+ Arrays.toString(jp.getArgs()));
            try {
                Object result=jp.proceed();
                log.info("调用"+jp.getTarget()+"的" +jp.getSignature().getName()+"方法。方法返回值："+result);
                return result;
            }catch (Throwable e){
                log.error(jp.getSignature().getName()+"方法发生异常："+e);
                throw e;
            }finally {
                log.info(jp.getSignature().getName()+"方法结束执行");
            }
    }
}
